#ifndef AUDITCORE_H
#define AUDITCORE_H

#include "auditapi_global.h"


//#ifdef __cplusplus
//extern "C" {
//#endif

/**
 * @brief : 注册账户
 * @param : _user 账号 in
 * @param : _pswd 密码 in
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiRegisterAccount(__api_in const char* const _name,
                                             __api_in const char* const _user,
                                             __api_in const char* const _pswd,
                                             __api_in const char* const _issue1,
                                             __api_in const char* const _answer1,
                                             __api_in const char* const _issue2,
                                             __api_in const char* const _answer2);

/**
 * @brief : 注册主管密码
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiRegisterSupervisor(__api_in const char* const _pswd);

/**
 * @brief : 验证主管密码
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiCheckSupervisorPswd(__api_in const char* const _pswd);





/**
 * @brief : 重置账户
 * @param : _user 账号 in
 * @param : _pswd 密码 in
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiResetAccount(__api_in const char* const _user,
                                          __api_in const char* const _pswd);

/**
 * @brief : 修改用户名称
 * @param : user     账号    in
 * @param : username 用户名称 in
 * @param : superPswd 超级管理员密码 in
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiModifyAccountName(__api_in const char* const _user,
                                               __api_in const char* const _username,
                                               __api_in const char* const _superPswd);
// 获得账户问题信息
AUDITAPISHARED_EXPORT int apiGetAccountInfo(__api_in const char* const _user,
                                            __api_out char* const _username,
                                            __api_out char* const _issue1,
                                            __api_out char* const _issue2);

// 找回账户
AUDITAPISHARED_EXPORT int apiCheckAccountInfo(__api_in const char* const _user,
                                            __api_in const char* const _issue1,
                                            __api_in const char* const _answer1,
                                            __api_in const char* const _issue2,
                                            __api_in const char* const _answer2);


/**
 * @brief : 修改用户密码
 * @param : user     账号    in
 * @param : pswd 密码    in
 * @param : superPswd 超级管理员密码 in
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiModifyAccountPswd(__api_in const char* const _user,
                                               __api_in const char* const _pswd,
                                               __api_in char* const _superPswd);



/**
 * @brief : 登录账户
 * @param : _user 账号 in
 * @param : _pswd 密码 in
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiLoginAccount(__api_in const char* const _user,
                                          __api_in const char* const _pswd,
                                          __api_out char* const _username);


/**
 * @brief : 退出账户
 * @return: 0正确，非0错误
*/
AUDITAPISHARED_EXPORT int apiLogoutAccount(void);



/**
 * @brief : 验证当前操作系统是否已经有注册用户
 * @return: 0已经注册，0未注册
*/
AUDITAPISHARED_EXPORT int apiCheckRegistered(void);




//#ifdef __cplusplus
//}
//#endif

#endif // AUDITCORE_H
